    (function(){var base64EncodeChars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var base64DecodeChars=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);function base64encode(str){var out,i,len;var c1,c2,c3;len=str.length;i=0;out="";while(i<len){c1=str.charCodeAt(i++)&0xff;if(i==len)
    {out+=base64EncodeChars.charAt(c1>>2);out+=base64EncodeChars.charAt((c1&0x3)<<4);out+="==";break;}
    c2=str.charCodeAt(i++);if(i==len)
    {out+=base64EncodeChars.charAt(c1>>2);out+=base64EncodeChars.charAt(((c1&0x3)<<4)|((c2&0xF0)>>4));out+=base64EncodeChars.charAt((c2&0xF)<<2);out+="=";break;}
    c3=str.charCodeAt(i++);out+=base64EncodeChars.charAt(c1>>2);out+=base64EncodeChars.charAt(((c1&0x3)<<4)|((c2&0xF0)>>4));out+=base64EncodeChars.charAt(((c2&0xF)<<2)|((c3&0xC0)>>6));out+=base64EncodeChars.charAt(c3&0x3F);}
    return out;}
    function base64decode(str){var c1,c2,c3,c4;var i,len,out;len=str.length;i=0;out="";while(i<len){do{c1=base64DecodeChars[str.charCodeAt(i++)&0xff];}while(i<len&&c1==-1);if(c1==-1)
    break;do{c2=base64DecodeChars[str.charCodeAt(i++)&0xff];}while(i<len&&c2==-1);if(c2==-1)
    break;out+=String.fromCharCode((c1<<2)|((c2&0x30)>>4));do{c3=str.charCodeAt(i++)&0xff;if(c3==61)
    return out;c3=base64DecodeChars[c3];}while(i<len&&c3==-1);if(c3==-1)
    break;out+=String.fromCharCode(((c2&0XF)<<4)|((c3&0x3C)>>2));do{c4=str.charCodeAt(i++)&0xff;if(c4==61)
    return out;c4=base64DecodeChars[c4];}while(i<len&&c4==-1);if(c4==-1)
    break;out+=String.fromCharCode(((c3&0x03)<<6)|c4);}
    return out;}
    if(!window.btoa)window.btoa=base64encode;if(!window.atob)window.atob=base64decode;})();

    function InPlace(){}
    
    
    InPlace.editField = function( _field )
    {
        _field.parentNode.nextSibling.style.display = "block";
        _field.parentNode.style.display = "none";
    }
    
    InPlace.saveField = function( _field, _callback )
    {
        var container = _field.parentNode;
        tinymceDeactivate();
        
        var content = container.getElementsByTagName( "TEXTAREA" )[0].value
        
        container.previousSibling.getElementsByTagName( "DIV" )[0].innerHTML = content;
        
        container.style.display = "none";
        
        container.previousSibling.style.display = "block";
        
        if ( typeof( _callback ) != "undefined" )
            _callback.apply( content );
        
        return false;
    }
    
    InPlace.cancelField = function( _field )
    {
        var container = _field.parentNode;
        container.style.display = "none";
        container.previousSibling.style.display = "block";
        return false;
    }    

    function getVcard( _element )
    {
        var base = _element;
        
        while ( base.nodeName != "TABLE" )
        {
            base = base.parentNode;
        }
        
        base = base.getElementsByTagName( 'td' );
        
        var vcard = "";
        vcard += "BEGIN:VCARD\n";
        vcard +=  "VERSION:3.0\n"
        
        function getById( _id )
        {
            var i = 0;
            while( i < base.length && base[i].id != _id )
            {
                i++;
            }
            return base[i];
        }

        if ( tmp = getById( 'name' ) )
            vcard += "N:" + tmp.innerHTML + "\n";

        if ( tmp = getById( 'fname' ) )
            vcard += "FN:" + tmp.innerHTML + "\n";
            
        if ( tmp = getById( 'org' ) )
            vcard += "ORG:" + tmp.innerHTML + "\n";
            
        if ( tmp = getById( 'phone' ) )
            vcard += "TEL;TYPE=WORK,VOICE:" + tmp.innerHTML + "\n";                                    

        if ( tmp = getById( 'address' ) )
        {
            vcard += "ADR;TYPE=WORK:" + tmp.innerHTML + "\n";
            vcard += "LABEL;TYPE=WORK:" + tmp.innerHTML + "\n";
        }
            
        if ( tmp = getById( 'email' ) )
        {
            vcard += "EMAIL;TYPE=PREF,INTERNET:" + tmp.innerHTML + "\n";
        
        }
        vcard += "END:VCARD\n";
        
        document.location.href = 'data:text/x-vcard;base64,'+btoa(vcard);
    }
